import babelpolyfill from 'babel-polyfill'
import Vue from 'vue'
import App from './App'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
//import './assets/theme/theme-green/index.css'
import VueRouter from 'vue-router'
import store from './vuex/store'
import Vuex from 'vuex'
//import NProgress from 'nprogress'
//import 'nprogress/nprogress.css'
import routes from './routes'
// import Mock from './mock'
// Mock.bootstrap();
import 'font-awesome/css/font-awesome.min.css'

import axios from "axios";
 axios.defaults.baseURL='http://localhost:10030/services'
Vue.prototype.$http=axios


Vue.use(ElementUI)
Vue.use(VueRouter)
Vue.use(Vuex)

//NProgress.configure({ showSpinner: false });
axios.interceptors.request.use(
    config => {
        // 从localStorage中获取token
        let token = localStorage.getItem("token");

        // 如果token有值,我们就放到请求头里面
        if (token) {
            config.headers.token = token;
        }
        return config
    },
    error => {
        return Promise.reject(error)
    })

//axios的响应拦截器
axios.interceptors.response.use(function(response){
    //对返回的数据进行操作
    let result = response.data;  // response.data 就是后端返给我们的数据
    if(!result.success && result.message == "noLogin"){ // 说明未登录,被拦截了,那么就要跳回到登陆页面

        router.push({ path: '/login' });  // 跳转回登陆页面,让用户登陆
    }
    if(!result.success && result.message == "noPermission"){ // 说明没有权限

        router.push({ path: '/401' });  // 跳到提示页面
    }
    return response
},function(err){
    return Promise.reject(err)
})
const router = new VueRouter({
    routes
})

//axios请求的拦截器，前置拦截，在每个axios请求的请求头中添加token
// axios.interceptors.request.use(
//     config=>{
//         //从localstorge中拿到token
//        let token= localStorage.getItem("token");
//        //如果token中有值的话就添加到请求头中
//         if (token){
//             //通过config将token的值设置到请求头去
//             config.headers.token=token;
//             //放完后就return config
//             return config;
//         }
//     },
//     error => {
//         return Promise.reject(error);
//     }
// )
// axios请求拦截器:添加请求拦截器，在请求头中加token


// router.beforeEach((to, from, next) => {
//   //NProgress.start();
//   if (to.path == '/login') {
//     sessionStorage.removeItem('user');
//   }
//   let user = JSON.parse(sessionStorage.getItem('user'));
//   if (!user && to.path != '/login') {
//     next({ path: '/login' })
//   } else {
//     next()
//   }
// })

//router.afterEach(transition => {
//NProgress.done();
//});

new Vue({
  //el: '#app',
  //template: '<App/>',
  router,
  store,
  //components: { App }
  render: h => h(App)
}).$mount('#app')

